import moment from "moment";
// 获取当前日期,时分秒为0
// 最终返回 当前日期的字符串格式 2022-09-01T00:00:00.000Z
export const currentDate = (date, hmsm) => {
  return moment(date)
    .utc()
    .startOf("days")
    .set({
      hours: hmsm?.hours | 0,
      minute: hmsm?.minute | 0,
      second: hmsm?.second | 0,
      milliseconds: hmsm?.milliseconds | 0
    })
    .add(1, "days")
    .toISOString();
};
// 获取当前前四个小时的时间
export const get4hour = time => {
  return currentDate3(
    moment()
      .subtract(8, "hour")
      .format("YYYY-MM-DD HH:mm:ss")
  );
};
// new date的时候 时间时差问题 接收参数 this.$moment().utc().subtract(4, "hour"),
export const currentDate2 = (date, addNum = 1) => {
  return moment(date)
    .utc()
    .startOf("days")
    .set({
      hours: new Date(date).getHours(),
      minute: new Date(date).getMinutes(),
      second: new Date(date).getSeconds(),
      milliseconds: new Date(date).getMilliseconds()
    })
    .add(addNum, "days")
    .toISOString();
};
// element时间组件 的时间格式化 返回后台识别的时间
// 2023-01-31T16:33:31.000+08:00
export const currentDate3 = date => {
  if (!date) {
    return "";
  }
  return moment(date).format("YYYY-MM-DDTHH:mm:ss.SSS[+08:00]");
};

// 计算两个时间相差多少
export function timeDifference(new_date, old_date) {
  var new_date = new Date(new_date).getTime() + 1000 * 60; //添加一分钟,解决时间差问题 // 新建一个日期对象，默认现在的时间
  var old_date = new Date(old_date); // 设置过去的一个时间点，"yyyy-MM-dd HH:mm:ss"格式化日期
  var difftime = (new_date - old_date) / 1000; // 计算时间差,并把毫秒转换成秒
  var days = parseInt(difftime / 86400); // 天  24*60*60*1000
  var hours = parseInt(difftime / 3600) - 24 * days; // 小时 60*60 总小时数-过去的小时数=现在的小时数
  var minutes = parseInt((difftime % 3600) / 60); // 分钟 -(day*24) 以60秒为一整份 取余 剩下秒数 秒数/60 就是分钟数
  var seconds = parseInt(difftime % 60); // 以60秒为一整份 取余 剩下秒数
  var time = "";
  if (days) {
    time = `${days}天`;
  }
  if (hours) {
    time += `${hours}小时`;
  }
  if (minutes) {
    time += `${minutes}分钟`;
  }
  // if (seconds) {
  //   time += `${seconds}秒`;
  // }
  // var time = `${days}天${hours}小时${minutes}分钟${seconds}秒`;
  return time;
}

export function GetDateDiff(startTime, endTime, diffType = "second") {
  //将xxxx-xx-xx的时间格式，转换为 xxxx/xx/xx的格式
  startTime = startTime.replace(/\-/g, "/");
  endTime = endTime.replace(/\-/g, "/");
  //将计算间隔类性字符转换为小写
  diffType = diffType.toLowerCase();
  var sTime = new Date(startTime); //开始时间
  var eTime = new Date(endTime); //结束时间
  //作为除数的数字
  var timeType = 1;
  switch (diffType) {
    case "second":
      timeType = 1000;
      break;
    case "minute":
      timeType = 1000 * 60;
      break;
    case "hour":
      timeType = 1000 * 3600;
      break;
    case "day":
      timeType = 1000 * 3600 * 24;
      break;
    default:
      break;
  }
  return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(timeType));
}
